Customized mosaic screen

ABSTRACT

A customized programming guide mosaic screen is provided. A user may selectively customize a mosaic display of video content items provided in a programming guide screen. One or more options may be provided for customizing the programming guide mosaic screen. The one or more options may include an option for populating the programming guide mosaic screen with recommended video content, an option for populating the programming guide mosaic screen with video content items with metadata that is similarly matched with a selected video content item or with a video content item currently being viewed by the user, or an option for populating the programming guide mosaic screen with one or more video content items associated with a specific mood. Upon selection of an option, currently airing content matching the selected option may populate one or more video panes in the mosaic display of the programming guide screen.

CROSS-REFERENCE TO RELATED APPLICATIONS

The application claims priority to U.S. Provisional Patent ApplicationNo. 61/800,968 titled “Customized Mosaic Screen” filed Mar. 15, 2013 andU.S. Provisional Patent Application No. 61/801,555 titled “PersonalizedMosaics Integrated with the Guide” filed Mar. 15, 2013, and U.S.Provisional Patent Application No. 61/794,434 titled “Auto-Population ofa Mosaic Screen” filed Mar. 15, 2013, the disclosures of which arehereby incorporated by reference in their entireties.

BACKGROUND

Many television services providers offer a mosaic screen where a displayof a collection of elements or channels displayed on a single screen isprovided. Most often, each channel may be represented as a thumbnailimage or video feed of the channel which a user may be enabled to selectfor viewing. Mosaic channels that are offered today may be preselectedchannels. The channels may either be static, or may be manually selectedto be included by a user.

It is with respect to these and other considerations that the presentinvention has been made.

SUMMARY

A customized programming guide mosaic screen is provided. Theillustrated embodiments allow users to customize a view of video contentprovided in a programming guide mosaic screen. Specifically, a user maybe provided with one or more options for customizing the programmingguide mosaic screen. The one or more options may include an option forpopulating the programming guide mosaic screen with recommended videocontent, an option for populating the programming guide mosaic screenwith video content items having metadata similarly matched with aselected video content item or with a video content item currently beingviewed by the user, or an option for populating the programming guidemosaic screen with one or more video content items associated with aspecific mood. Upon selection of an option, currently airing contentmatching the selected option may populate one or more video panes in themosaic display of the programming guide screen. Further, if the userselects a new option, the programming guide may be refreshed and videocontent associated with the selected option may be displayed in themosaic screen.

The details of one or more embodiments are set forth in the accompanyingdrawings and description below. Other features and advantages will beapparent from a reading of the following detailed description and areview of the associated drawings. It is to be understood that thefollowing detailed description is explanatory only and is notrestrictive of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout the several figures:

FIG. 1 is a simplified block diagram of an exemplary system forproviding customization of a programming guide mosaic screen;

FIG. 2 is an illustration of an example programming guide mosaic screencomprising a plurality of recommended video content items;

FIG. 3 is an illustration of an example “more like this” programmingguide mosaic screen;

FIG. 4 is an illustration of an example guide user interface from whicha user may select a “mood” mosaic display of the programming guide;

FIG. 5 is an illustration of an example guide user interface from whicha user may select a specific “mood type;”

FIG. 6 is an illustration of an example “mood” programming guide mosaicscreen;

FIG. 7 is a flowchart illustrating a method for generating a customizedmosaic programming guide; and

FIG. 8 is a simplified block diagram illustrating a cable televisionservices system architecture providing an operating environmentaccording to an embodiment.

DETAILED DESCRIPTION

As briefly described above, embodiments of the present invention aredirected to providing a customized programming guide mosaic screen. Theillustrated embodiments may allow a user to customize his/her view ofvideo content items on a mosaic screen. Specifically, a user may beprovided with one or more options that are associated with one or morevideo content items. Once the user selectively indicates to view contentassociated with an option, the content that is associated with theoption may be displayed on the mosaic screen. Further, if the userselects a new option, the mosaic screen may be refreshed and a displayof the new content associated with the new option may be provided.

These embodiments may be combined, other embodiments may be utilized,and structural changes may be made without departing from the spirit orscope of the present invention. The following detailed description istherefore not to be taken in a limiting sense, and the scope of thepresent invention is defined by the appended claims and theirequivalents. Referring now to the drawings, in which like numerals referto like elements throughout the several figures, embodiments of thepresent invention and an exemplary operating environment will bedescribed.

FIG. 1 is a simplified block diagram of an exemplary system 100 forproviding customization of a programming guide mosaic screen. Referringto the lower portion of FIG. 1, a service provider 102 is illustratedfor providing a variety of video content items to users/subscribers viaone or more receiver devices. The service provider 102 is illustrativeof any service provider, for example, a cable television serviceprovider, a satellite-based television service provider, an Internetprotocol-based service provider, or any other service provider that isoperable to provide audio, video, or a combination of audio and videocontent to users/subscribers for consumption via a variety of receivingdevices. A detailed illustration and description of an example cabletelevision services provider system is provided below with reference toFIG. 8.

Receiving devices include any device capable of receiving audio andvideo content and for allowing consumption of the content. For example,a receiving device may include such devices as a television 104 andassociated set-top box 106, a tablet computing device 108, a mobiletelephone 110, a smart television 112, or other (IP) capable device 114.As will be described below, each of these types of devices may be usedfor accessing and consuming content via a primary service provider.

A service provider content delivery network (CDN) 116 is illustrated inassociation with the service provider 102, and a service provider backend and application server 118 are illustrated in association with aservice provider CDN. As should be appreciated, the layout of thefunctionalities of the service provider including the service providerCDN and the service provider back end and application server system arefor purposes of illustration only and are not restrictive of the variouslayouts and combinations of systems that may be utilized by a givenservice provider for providing content to users/subscribers.

According to embodiments, a service provider back end/application server118 may provide functionality for maintaining profile information onusers/subscribers including permissions for users/subscribers to utilizeservice provider functionality including consumption of service providercontent and including such functionalities as content preferences,parental control systems, billing systems, and the like. The back endand application server for the service provider may provide operatingfunctionality, for example, one or more software applications andassociated databases for directing content distribution provided by theservice provider 102 to users/subscribers at the receiving devices 104,108, 110, 112, 114.

The service provider content delivery network (CDN) 116 is illustrativeof a delivery or distribution network which may include a distributedsystem of servers, databases, and other content repositories fordistributing audio and video content, text, graphics, media files,software applications and associated documents, on-demand content,social media content, live streaming media content, and the like fromthe service provider 102 to the users/subscribers. CDNs typicallyfunction by receiving requests from clients, checking a local cache fora copy of the requested resource, or querying some source if a requestedresource is not in the cache or has expired for example. CDN servers canbe strategically located at the edges of various networks to limit loadson network interconnects and backbones. CDN servers can be redundantlydeployed and interact with other CDN servers to respond to contentrequests from clients in attempts to optimize content delivery. Forexample, network edge servers can enable ease of browsing, navigatingand streaming of content, including streaming live video. For example,if a given user/subscriber operating the tablet computing device 108selects a news story for live streaming to the tablet computing device108 as offered by the service provider 102, the application server atthe back end application server may cause a media player to activate forstreaming the desired content from the service provider CDN 116 to theuser's tablet computing device 108 via IP-based transmission to thetablet computing device 108.

A programming guide mosaic screen 120 is illustrated with which theservice provider 102 may provide information about and access to one ormore features or attributes of available programming. The programmingguide mosaic screen 120 may be displayed on any of the content receivingdevices 104, 108, 110, 112, 114 for allowing users/subscribers to reviewinformation about and gain access to available programming provided bythe service provider 102. As will be described herein, in addition toprogramming provided by the service provider 102, the programming guidemosaic screen 120 may be populated with information identifying anddescribing third party content, and the user/subscriber may utilize theprogramming guide mosaic screen 120 for navigating to and consuming thethird party content.

The service provider content/metadata 122 is illustrative of content andassociated descriptive metadata that may be maintained and provided bythe primary service provider 102, or may be obtained from third partysources. The content/metadata 122 may also comprise informationassociated with the content including descriptive metadata for use indistributing the content and associated metadata through the back endapplication server of the service provider 102 via the service providerCDN 116, as described above. As should be appreciated, metadataassociated with content may include information such as content titles,content authors, content creation date, content ratings, informationdescribing content plots, summaries, mood, or any other information thatmay be provided in association with a given content item. In addition tometadata associated with a given content item, for example, a movie,television show, news event, sports event, and the like, additionalmetadata for the content item may be produced and provided by theservice provider, for example, information relating to viewing times,viewing channels, and the like designated by the service provider 102.

The authentication system 124 is illustrative of one or more softwareapplications and databases operative to determine whether a requestinguser/subscriber may access requested primary service provider contentaccording to embodiments. That is, if a user/subscriber attempts toaccess one or more primary service provider content items, theauthentication system 124 may be queried by the service provider backend application server 118 for determining whether the requestinguser/subscriber is authorized to access the requested informationincluding a determination of whether parental controls or othermechanisms are in place for blocking access to a requestinguser/subscriber.

The recommendation system 126 is illustrative of one or more softwareapplications operative to query profile/preference data 128 maintainedby the primary service provider via the back end application server forusers/subscribers for recommending both primary service provider contentand third party content. For example, if profile/preference datamaintained for a given user/subscriber in the profile/preference data128 shows that a given user is fond of a particular genre of content,for example, action movies, the recommendation system 126 may utilizesuch profile/preference data for recommending both primary serviceprovider content and third party content to the user/subscriber via theprogramming guide mosaic screen 120.

A programming guide mosaic screen 120 may comprise a plurality ofindividual video tiles/panes having currently airing content displayedon each of the video panes on a single mosaic screen. Embodimentsprovide for enabling a user to customize the type of content displayedin a mosaic screen 120. According to an embodiment and as illustrated inFIG. 2, a user may choose to populate a programming guide mosaic screen120 with a plurality of video content items recommended to the user viathe recommendation system 126. That is, the user may select a“recommendations” 206 mosaic display of the programming guide. Forexample, a selectable menu option may be provided or a button on aremote control may be provided for selecting a “recommendations” 206mosaic display of the programming guide. The recommended video contentitems may be displayed in the plurality of video panes 202, and mayinclude currently airing programs from which the user may choose to viewat that time. According to embodiments, recommended video content itemsmay be based on the user's viewing history, preferences, and feedback.Recommended video content may also be based on content the user iscurrently viewing. A user may select to remove a recommended contentitem displayed in a video pane 202 from the “recommendations” 206 mosaicdisplay of the programming guide. Accordingly, the mosaic screen 120 maybe dynamically refreshed, and another recommended video content item maybe displayed in place of the selectively removed video content item.According to an embodiment, a next most highly recommended content itemmay replace the selectively removed video content item.

As illustrated in FIG. 2, the programming guide mosaic screen 120 mayalso comprise a scaled window 204. A display of content the user iscurrently watching (i.e., content playing on a channel currentlyconnected to) may be displayed in the scaled window 204. For example, ifa user is watching CNN and selects to view the programming guide to seewhat else is on, the content playing on CNN may continue to be displayedin the scaled window 204. Additionally, a user may select a video pane202 displayed in the programming guide mosaic screen 120, and thecontent playing in the selected video pane 202 may be displayed in thescaled window 204.

According to another embodiment, a user may choose to populate aprogramming guide mosaic screen 120 with content similar to content theuser has selected in the guide or is currently watching. For example,the user may select a “more like this” 306 mosaic display of theprogramming guide. Referring now to FIG. 3, an example programming guidemosaic screen 120 comprising a display of content with metadatasimilarly matching metadata of a selected video content item or a videocontent item the user is currently watching is illustrated. Selection ofa “more like this” option may provide content items from various sourcesbased upon tags in the metadata which may include tags associated with agenre, a male/female lead role, a specific male/female actor, year ofrelease, viewership age (e.g., under 12, teen, adult), and the like.

A “more like this” option may be provided to the user in a variety offormats. For example, a button on a remote control may be provided forselecting a “more like this” 306 mosaic display of the programmingguide, an option may be provided and selected when viewing a videocontent item, or the user may select a video pane 202 in the programmingguide and then select a “more like this” option to populate theprogramming guide with currently airing content items similar to thecontent in the selected video pane 202.

According to an embodiment, a “more like this” option may be selectedfrom a “recommendations” 206 mosaic display of the programming guide.Selection of a “more like this” option from a “recommendations” 206mosaic display of the programming guide may provide for populating theprogramming guide mosaic screen 120 with content that is tagged in themetadata such that it is associated with a selected content item and hasother criteria that would make it a recommendation for the user.

According to another embodiment, a user may choose to populate aprogramming guide mosaic screen 120 with content relating to aparticular mood. That is, the user may select a “mood” 606 mosaicdisplay of the programming guide. Referring now to FIG. 4, an exampleguide user interface is illustrated from which a user may select a“mood” mosaic display of the programming guide. For example and asillustrated, a “mood” option 405 may be provided in a programming guidemenu. As another example, a “mood” option may be provided as a button ona remote control.

According to an embodiment, upon selection of a “mood” option 405, aplurality of specific “mood types” 505 from which the user may choosemay be displayed as illustrated in FIG. 5. For example, various “moodtypes” 505 may include, but are not limited, a “happy” mood, “sad” mood,or a “comical” mood. The “mood types” 505 may be selectable such thatwhen a particular “mood type” 505 is selected, available content may befiltered, and video panes 202 in the programming guide mosaic screen 120may be populated with video content items relating to the selected “moodtype” 505.

According to another embodiment, a particular “mood type” 505 may beautomatically selected based on the user's viewing history, preferences,and feedback. For example, if a user generally watches comedy shows, adetermination may be made that the user has an affinity for videocontent that may be classified as “comical” mood content according toits metadata.

With reference now to FIG. 6, an example “mood” 606 mosaic display ofthe programming guide is illustrated. According to embodiments, aplurality of video panes 202 may be displayed in the “mood” 606programming guide mosaic screen 120, wherein a video content item havingmetadata matching the selected or automatically determined “mood type”505 may be displayed in each video pane 202. The video content itemsselected to be displayed in the “mood” 606 mosaic screen 120 may betagged with metadata matching the particular mood. Further, the “mood”mosaic screen may be automatically populated with linear content that isidentified as fitting the selected or automatically determined “mood” atthat particular time. If another “mood type” 505 is selected, thecontent displayed in the video panes 202 may be refreshed and new videocontent fitting the specified mood criteria may be displayed in themosaic screen.

According to an embodiment, a “mood” option 405 may be selected from a“recommendations” 206 mosaic display of the programming guide. Selectionof a “mood” option 405 from a “recommendations” 206 mosaic display ofthe programming guide may provide for filtering the recommended contentin the programming guide mosaic screen 120 to content that is tagged inthe metadata such that it is associated with a selected “mood type” 505and has other criteria that would make it a recommendation for the user.

FIG. 7 is a flowchart of a method 700 for providing a customizedprogramming guide mosaic screen 120 according to an embodiment. Themethod 700 starts at OPERATION 705, and proceeds to OPERATION 710 whereone or more options for customizing a programming guide mosaic screen120 are provided. The one or more options may utilize any attribute thatis associated with video content items in order to customize the contentbeing displayed in the mosaic. For example, in one embodiment, theoptions may include a “recommendations” option, a “more like this”option, and a “mood” option.

At OPERATION 715, an indication of a selection of an option forcustomizing the programming guide mosaic screen 120 may be received. Asdescribed above, the selection may be made in various ways, for example,via a selection of a displayed programming guide menu option or via aselection of a “recommendations” option button, a “more like this”option button, or a “mood” option button on a remote control.

At OPERATION 720, the service provider may be queried for contentassociated with the selected option. Various attributes may be utilizedto query for content. In one embodiment, if a selection of a“recommendations” option is received, attributes from a user's profilemay be utilized to query for content common to content that isfrequently viewed by the user. In another embodiment, if a selection ofa “more like this” option is received, attributes from a selectedcontent item or a content item currently being viewed by the user may beutilized to locate other content items that have similar attributes.Further, if a selection of a “mood” option is received, a query forcontent items tagged with metadata associated with a selected “moodtype” (e.g., “happy,” “sad,” “comical,” etc.) may be performed.

The method may proceed to OPERATION 725, where video content associatedwith the selected option may be retrieved. The retrieved content may belocated by the queries discussed above.

At OPERATION 730, a programming guide mosaic screen 120 may be generatedincluding the content retrieved at OPERATION 725 and as illustrated anddescribed with respect to FIGS. 2, 3, and 6.

The method 700 may return to OPERATION 710 where one or more mosaicscreen customization options may be provided, or may end at OPERATION795.

FIG. 8 is a simplified block diagram illustrating a cable televisionservices system 800 (hereafter referred to as “CATV”) architectureproviding an operating environment according to an embodiment. As can beappreciated, a CATV architecture is but one of various types of systemsthat may be utilized to provide recording of network-related content.For example, other systems such as satellite-based television servicessystems may be utilized for providing interaction between acustomer/subscriber and third party content as set out above. Referringnow to FIG. 8, digital and analog video programming, information contentand interactive television services are provided via a hybrid fiber coax(HFC) network 815 to a television set 104 for consumption by a cabletelevision/services system customer. As is known to those skilled in theart, HFC networks 815 combine both optical fiber and coaxial cablelines. Typically, optical fiber runs from the cable head end 826 toneighborhoods of subscribers. Coaxial cable runs from the optical fiberfeeders to each customer or subscriber. The functionality of the HFCnetwork 815 allows for efficient bidirectional data flow between theclient-side set-top box 106 and a server-side application server 840(also referred to as back end application server).

The CATV system 800 is in the form of a distributed client-servercomputing system for providing video and data flow across the HFCnetwork 815 between server-side services providers (e.g., cabletelevision/services providers) via a server-side head end 826 and aclient-side customer via a client-side set-top box (STB) 106functionally connected to a customer receiving device, such as thetelevision set 104. As is understood by those skilled in the art, modernCATV systems 800 may provide a variety of services across the HFCnetwork 815 including traditional digital and analog video programming,telephone services, high speed Internet access, video-on-demand, andinformation services.

On the client side of the CATV system 800, digital and analog videoprogramming and digital and analog data are provided to the customertelevision set 104 via the set-top box (STB) 106. Interactive televisionservices that allow a customer to input data to the CATV system 800likewise are provided by the STB 106. As illustrated in FIG. 8, the STB106 is a multipurpose computing device having a computer processor,memory, and an input/output mechanism. The input/output mechanismreceives input from server-side processes via the HFC network 815 andfrom customers via input devices such as the remote control device 828,keyboard 830, or other computing device, such as a tablet/slatecomputer, smart phone, etc. The remote control device 828 and thekeyboard 830 may communicate with the STB 106 via a suitablecommunication transport such as the infrared connection 832. The STB 106also includes a video processor for processing and providing digital andanalog video signaling to the television set 104 via a cablecommunication transport 834. A multi-channel tuner is provided forprocessing video and data to and from the STB 106 and the server-sidehead end system 826, described below.

The STB 106 also includes an operating system 822 for directing thefunctions of the STB 106 in conjunction with a variety of clientapplications 825. For example, if a client application 825 requires anews flash from a third-party news source to be displayed on thetelevision 104, the operating system 822 may cause the graphicsfunctionality and video processor of the STB 106, for example, to outputthe news flash to the television 104 at the direction of the clientapplication 825 responsible for displaying news items. According toembodiments, the client applications 825 may include one or moreapplications suitable for coordinating third party content items to thetelevision 104.

Because a variety of different operating systems 822 may be utilized bya variety of different brands and types of set-top boxes, a middlewarelayer 824 may be provided to allow a given software application to beexecuted by a variety of different operating systems. According to anembodiment, the middleware layer 824 may include a set of applicationprogramming interfaces (APIs) that are exposed to client applications825 and operating systems 822 that allow the client applications tocommunicate with the operating systems through common data callsunderstood via the API set. As described below, a correspondingmiddleware layer is included on the server side of the CATV system 800for facilitating communication between the server-side applicationserver and the client-side STB 106. The middleware layer 842 of theserver-side application server and the middleware layer 824 of theclient-side STB 106 may format data passed between the client side andserver side according to the Extensible Markup Language (XML).

According to one embodiment, the set-top box 106 passes digital andanalog video and data signaling to the television 104 via a one-waycommunication transport 834. According to other embodiments, two-waycommunication transports may be utilized, for example, via highdefinition multimedia (HDMI) ports. The STB 106 may receive video anddata from the server side of the CATV system 800 via the HFC network 815through a video/data downlink and data via a data downlink. The STB 106may transmit data from the client side of the CATV system 800 to theserver side of the CATV system 800 via the HFC network 815 via one datauplink. The video/data downlink is an “in band” downlink that allows fordigital and analog video and data signaling from the server side of theCATV system 800 through the HFC network 815 to the set-top box 106 foruse by the STB 106 and for distribution to the television set 104. As isunderstood by those skilled in the art, the “in band” signaling spaceoperates at a relative high frequency, e.g., between 54 and 1000megahertz. The signaling space is generally divided into 6 megahertzchannels in which may be transmitted as a single analog signal or agreater number (e.g., ten) of digital signals.

The data downlink and the data uplink, illustrated in FIG. 8, betweenthe HFC network 815 and the set-top box 106 comprise “out of band” datalinks. As is understand by those skilled in the art, the “out of band”frequency range is generally at a lower frequency than “in band”signaling. For example, the “out of band” frequency range may be betweenzero and 54 megahertz. Data flow between the client-side set-top box 106and the server-side application server 840 is typically passed throughthe “out of band” data links. Alternatively, an “in band” data carouselmay be positioned in an “in band” channel into which a data feed may beprocessed from the server-side application server 840 through the HFCnetwork 815 to the client-side STB 106. Operation of data transportbetween components of the CATV system 800, described with reference toFIG. 8, is well known to those skilled in the art.

Referring still to FIG. 8, the head end (also referred to as the backend) of the CATV system 800 is positioned on the server side of the CATVsystem and includes hardware and software systems responsible fororiginating and managing content for distributing through the HFCnetwork 815 to client-side STBs 106 for presentation to customers viatelevisions 104. As described above, a number of services may beprovided by the CATV system 800, including digital and analog videoprogramming, interactive television services, telephone services,video-on-demand services, targeted advertising, and provision ofinformation content.

The application server 840 is a general-purpose computing systemoperative to assemble and manage data sent to and received from theclient-side set-top box 106 via the HFC network 815. As described abovewith reference to the set-top box 106, the application server 840includes a middleware layer 842 for processing and preparing data fromthe head end of the CATV system 800 for receipt and use by theclient-side set-top box 106. For example, the application server 840 viathe middleware layer 842 may obtain data from third-party services 846via the Internet 820 for transmitting to a customer through the HFCnetwork 815 and the set-top box 106. For example, content metadata athird-party content provider service may be downloaded by theapplication server via the Internet 820. When the application server 840receives the downloaded content metadata, the middleware layer 842 maybe utilized to format the content metadata for receipt and use by theset-top box 106. Therefore, content metadata may be sent and categorizedbased on the availability to the customer's program guide data.

According to one embodiment, data obtained and managed by the middlewarelayer 842 of the application server 840 is formatted according to theExtensible Markup Language and is passed to the set-top box 106 throughthe HFC network 815 where the XML-formatted data may be utilized by aclient application 825 in concert with the middleware layer 824, asdescribed above. As should be appreciated by those skilled in the art, avariety of third-party services data, including news data, weather data,sports data and other information content may be obtained by theapplication server 840 via distributed computing environments such asthe Internet 820 for provision to customers via the HFC network 815 andthe set-top box 106.

According to embodiments, the application server 840 obtains customersupport services data, including billing data, information on customerwork order status, answers to frequently asked questions, servicesprovider contact information, and the like from data services 860 forprovision to the customer via an interactive television session. Asillustrated in FIG. 8, the services provider data services 860 include anumber of services operated by the services provider of the CATV system800 which may include data on a given customer.

A billing system 862 may include information such as a customer's name,street address, business identification number, Social Security number,credit history, and information regarding services and productssubscribed to by the customer. According to embodiments, the billingsystem 862 may also include billing data for services and productssubscribed to by the customer for bill processing, billing presentmentand payment receipt.

A customer information database 868 may include general informationabout customers such as place of employment, business address, businesstelephone number, and demographic information such as age, gender,educational level, and the like. The customer information database 868may also include information on pending work orders for services orproducts ordered by the customer. The customer information database 868may also include general customer information such as answers tofrequently asked customer questions and contact information for variousservice provider offices/departments. According to an embodiment, thecustomer information database 868 may also include profile informationfor customers/subscribers that include permissions and authenticationinformation associated with or required for accessing and recordingthird party content as set out above. As should be understood, thisinformation may be stored in a variety of disparate databases operatedby the cable services provider.

Referring still to FIG. 8, web services system 850 is illustratedbetween the application server 840 and the data services 860. Accordingto embodiments, web services system 850 serves as a collection point fordata requested from each of the disparate data services systemscomprising the data services 860. According to embodiments, when theapplication server 840 requires customer services data from one or moreof the data services 860, the application server 840 passes a data queryto the web services system 850. The web services system formulates adata query to each of the available data services systems for obtainingany required data for a requesting customer as identified by a set-topbox identification associated with the customer. The web services system850 serves as an abstraction layer between the various data servicessystems and the application server 840. That is, the application server840 is not required to communicate with the disparate data servicessystems, nor is the application server 840 required to understand thedata structures or data types utilized by the disparate data servicessystems. The web services system 850 is operative to communicate witheach of the disparate data services systems for obtaining necessarycustomer data. The customer data obtained by the web services system isassembled and is returned to the application server 840 for ultimateprocessing via the middleware layer 842, as described above.

An authentication system 866 may include information such as secure usernames, subscriber profiles, subscriber IDs, and passwords utilized bycustomers for access to network services. As should be understood bythose skilled in the art, the disparate systems 862, 864, 866, and 868may be integrated or provided in any combination of separate systems,wherein FIG. 8 shows only one example.

Although described herein in combination with various computing devices,in alternative embodiments the invention may be used in combination withany number of computer systems, such as in desktop environments, laptopor notebook computer systems, multiprocessor systems, micro-processorbased or programmable consumer electronics, networked PCs, minicomputers, main frame computers and the like. Embodiments of the presentinvention may be utilized in various distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network in a distributed computing environment,and where programs may be located in both local and remote memorystorage.

Embodiments, for example, are described above with reference to blockdiagrams and/or operational illustrations of methods, systems, andcomputer program products according to embodiments. The functions/actsnoted in the blocks may occur out of the order as shown in any flowchartor described herein with reference to FIGS. 1-8. For example, twoprocesses shown or described in succession may in fact be executedsubstantially concurrently or the blocks may sometimes be executed inthe reverse order, depending upon the functionality/acts involved.

While certain embodiments have been described, other embodiments mayexist. Furthermore, although embodiments have been described as beingassociated with data stored in memory and other storage mediums, datamay also be stored on or read from other types of computer-readablestorage media, such as secondary storage devices, like hard disks,floppy disks, a CD-ROM, or other forms of RAM or ROM. Further, thedisclosed processes may be modified in any manner, including byreordering and/or inserting or deleting a step or process, withoutdeparting from the embodiments.

The foregoing description of exemplary embodiments of the invention hasbeen presented for the purposes of illustration and description. It isnot intended to be exhaustive or to limit the invention to the preciseform disclosed. Many modifications and variations are possible in lightof the above teaching. It is intended that the scope of the invention belimited not with this detailed description, but rather by the claimsappended hereto.

We claim:
 1. A method for providing a customized programming guidemosaic screen, the method comprising: receiving an indication to displaya programming guide; providing the programming guide by displaying aprogramming guide mosaic screen; in response to providing theprogramming guide, providing one or more options for customizing theprogramming guide mosaic screen; selecting a video pane from theprogramming guide mosaic screen; receiving an indication of a selectionof one of the one or more options to customize a view of the programmingguide mosaic screen; querying for content associated with the selectedoption and associated with the selected video pane of the programmingguide mosaic screen; retrieving the content associated with the selectedoption and associated with the selected video pane of the programmingguide mosaic screen; and generating another programming guide mosaicscreen of the programming guide including the content associated withthe selected option and associated with the selected video pane.
 2. Themethod of claim 1, wherein providing one or more options for customizingthe programming guide mosaic screen comprises providing an option forpopulating the programming guide mosaic screen with one or morerecommended video content items.
 3. The method of claim 2, furthercomprising: receiving an indication of a selection by a user to populatethe programming guide mosaic screen with one or more recommended videocontent items; querying for currently airing video content items withmetadata that is similarly matched with content that is frequentlyviewed by the user; retrieving one or more video content items withmetadata that is similarly matched with content that is frequentlyviewed by the user; and displaying the one or more video content itemsin one or more video panes in the programming guide mosaic screen. 4.The method of claim 1, wherein providing one or more options forcustomizing the programming guide mosaic screen comprises providing anoption for populating the programming guide mosaic screen with one ormore video content items with metadata that is similarly matched with aselected video content item or with a video content item currently beingviewed by a specific user.
 5. The method of claim 4, further comprising:receiving an indication of a selection by a user to populate theprogramming guide mosaic screen with one or more video content itemswith metadata that is similarly matched with a selected video contentitem or with a video content item currently being viewed the user;querying for currently airing video content items with metadata that issimilarly matched with content that is selected or that is currentlybeing viewed by the user; retrieving one or more video content itemswith metadata that is similarly matched with content that is selected orthat is currently being viewed by the user; and displaying the one ormore video content items in one or more video panes in the programmingguide mosaic screen.
 6. The method of claim 5, wherein querying forcurrently airing video content items with metadata that is similarlymatched with content that is selected or that is currently being viewedby the user comprises querying for content comprising one or moremetadata tags matching one or more metadata tags associated with thecontent that is selected or that is currently being viewed by the user.7. The method of claim 5, further comprising querying for currentlyairing video content items with metadata that is similarly matched withcontent that is selected or that is currently being viewed by the userand with metadata that is similarly matched with content that isfrequently viewed by the user.
 8. The method of claim 1, whereinproviding one or more options for customizing the programming guidemosaic screen comprises providing an option for populating theprogramming guide mosaic screen with one or more video content itemswith metadata matching a specific mood.
 9. The method of claim 8,further comprising: providing one or more selectable mood types;receiving an indication of a selection by a user to populate theprogramming guide mosaic screen with one or more video content itemswith metadata matching a selected mood type; querying for currentlyairing video content items with metadata matching the a selected moodtype; retrieving one or more video content items with metadata matchingthe a selected mood type; and displaying the one or more video contentitems in one or more video panes in the programming guide mosaic screen.10. The method of claim 9, further comprising querying for currentlyairing video content items with metadata matching the selected mood typeand with metadata that is similarly matched with content that isfrequently viewed by the user.
 11. A system for providing a customizedprogramming guide mosaic screen, the system comprising: a memorystorage; and one or more processing units coupled to the memory storage,wherein the processing unit(s) are operable to: provide a programmingguide by displaying a programming guide mosaic screen; provide one ormore options for customizing a view of the programming guide mosaicscreen; select a video pane from the programming guide mosaic screen;receive an indication of a selection of one of the one or more optionsto customize the programming guide mosaic screen; query for contentassociated with the selected option and associated with the selectedvideo pane of the programming guide mosaic screen; retrieve the contentassociated with the selected option and associated with the selectedvideo pane of the programming guide mosaic screen; and generate anotherprogramming guide mosaic screen of the programming guide including thecontent associated with the selected option and associated with theselected video pane.
 12. The system of claim 11, wherein in providingone or more options for customizing the programming guide mosaic screen,the one or more processors are operable to provide one or more of: anoption for populating the programming guide mosaic screen with one ormore video content items recommended to a specific user; an option forpopulating the programming guide mosaic screen with one or more videocontent items with metadata that is similarly matched with a selectedvideo content item or with a video content item currently being viewedby the specific user; or an option for populating the programming guidemosaic screen with one or more video content items with metadatamatching a specific mood.
 13. The system of claim 12, wherein the one ormore processors are further operable to: receive an indication of aselection to populate the programming guide mosaic screen with one ormore recommended video content items; query for currently airing videocontent items common to content that is frequently viewed by thespecific user; retrieve one or more video content items common tocontent that is frequently viewed by the specific user; and display theone or more video content items in one or more video panes in theprogramming guide mosaic screen.
 14. The system of claim 12, wherein theone or more processors are further operable to: receive an indication ofa selection to populate the programming guide mosaic screen with one ormore video content items with metadata that is similarly matched with aselected video content item or with a video content item currently beingviewed the specific user; query for currently airing video content itemswith metadata that is similarly matched with content that is selected orthat is currently being viewed by the specific user; retrieve one ormore video content items with metadata that is similarly matched withcontent that is selected or that is currently being viewed by thespecific user; and display the one or more video content items in one ormore video panes in the programming guide mosaic screen.
 15. The systemof claim 14, wherein the currently airing video content items withmetadata that is similarly matched with content that is selected or thatis currently being viewed by the specific user comprises content withmetadata that is similarly matched with content that is frequentlyviewed by the specific user.
 16. The system of claim 12, wherein the oneor more processors are further operable to: provide one or moreselectable mood types; receive an indication of a selection to populatethe programming guide mosaic screen with one or more video content itemswith metadata matching a selected mood type; query for currently airingvideo content items with metadata that is similarly matched with theselected mood type; retrieve one or more video content items withmetadata that is similarly matched with the selected mood type; anddisplay the one or more video content items in one or more video panesin the programming guide mosaic screen.
 17. The system of claim 16,wherein the content items with metadata that is similarly matched withthe selected mood type comprise content items with metadata that issimilarly matched to content that is frequently viewed by the specificuser.
 18. A computer-readable storage device having stored thereoncomputer-executable instructions which when executed by a computerperform a method for providing a customized programming guide mosaicscreen, comprising: provide a programming guide by displaying aprogramming guide mosaic screen; providing one or more options forcustomizing a view of the programming guide mosaic screen; selecting avideo pane from the programming guide mosaic screen; receiving anindication of a selection of one of the one or more options to customizethe programming guide mosaic screen; querying for content associatedwith the selected option and associated with the selected video pane ofthe programming guide mosaic screen; retrieving the content associatedwith the selected option and associated with the selected video pane ofthe programming guide mosaic screen; and generating another programmingguide mosaic screen of the programming guide including the contentassociated with the selected option.
 19. The computer-readable storagedevice of claim 18, wherein providing one or more options forcustomizing a programming guide mosaic screen comprises providing one ormore of: an option for populating the programming guide mosaic screenwith one or more video content items recommended to a specific user; anoption for populating the programming guide mosaic screen with one ormore video content items with metadata that is similarly matched with aselected video content item or with a video content item currently beingviewed by the specific user; or an option for populating the programmingguide mosaic screen with one or more video content items with metadatathat is similarly matched with a specific mood.
 20. Thecomputer-readable storage device of claim 18, further comprising:receiving an indication of a second selection of one of the one or moreoptions to customize the programming guide mosaic screen; querying forcontent associated with the secondly selected option; retrieving thecontent associated with the secondly selected option; and refreshing themosaic display of the programming guide to display the contentassociated with the secondly selected option.